<?php
/**
 *  Projekt na Badania Operacyjne
 *
 *  System zapisow na zajęcia, moduł sieciowy
 *******************************************************************************
 *  @author Miron Pawlik <miron@live.com>
 *  @created 20-04-2008
 ******************************************************************************/

/*
Kilka uwag dla tych co to beda czytac:
  kod wymaga jeszcze troche dopracowania ;)
  zmienne pisane duzymi literami docelowo beda w configu
  klasa debug docelowo bedzie wyeliminowana
  klasy w katalogu libs (poza Student) pochodza z innych projektow
*/


//automatyczne loadowanie klas
function __autoload( $className )
{
	if(file_exists('_libs/'.$className.'.php'))
		require_once('_libs/'.$className.'.php');
}
error_reporting(0);

//uruchamianie debuga
$debug = new Debug();

//wysylanie naglowkow
header("Content-Type: text/html; charset=utf-8");
session_start();

//inicjowanie zmiennej sesyjnej
if(!isset($_SESSION['user']))
	$_SESSION['user'] = 0;

//wczytywanie podstawowego configa (polaczenie z baza)
require("config.php");

//ladowanie smartow
require_once("_libs/smarty/Smarty.class.php");

//laczenia sie z baza danych

//$db = new dbHandler('data/'. str_replace('www.', '', str_replace('.ndesign.pl', '', $_SERVER["SERVER_NAME"] ).'.sqlite' ));
$db = new dbHandler($_config['sqlite']);

//wczytywania konfiguracji
$_conf = new Config($db);
$_conf['host'] = 'http://'.$_SERVER['HTTP_HOST'].substr($_SERVER['REQUEST_URI'], 0, strrpos($_SERVER['REQUEST_URI'], '/')+1);
//odpalanie smartow
$smarty = new smarty;

//wczytywanie danych wejsciowych
$fd = new FrontData($_conf);
$debug->dump($fd, 'frontData');

//wrzucanei konfiga do smartow
$smarty->assign( '_conf', $_conf);

//wylogowywanie 
if($fd->issetParam('logout'))
{
	$_SESSION['user'] = NULL;
	header("Location: ".$_conf['host']);
}
//logowanie
if($fd->issetParam('login'))
{
	$_SESSION['user'] = Student::login($db, $fd['login'], $fd['pass']);
	if($_SESSION['user'])
	{
		$db->addNew('loginLogs', array('indexId' => $fd['login'], 'date' => time(), 'ip' => $_SERVER["REMOTE_ADDR"], 'userAgent' => $_SERVER['HTTP_USER_AGENT']));
		header("Location: ".$_conf['host']);
	}
	else
		$smarty->assign('errorMsg', "Błędny login lub hasło");
}

//jesli user jest niezalogowany, pokazujemy panel logowania
if(!$_SESSION['user'])
{
	$modTpl = 'login';
}
//jesli zalogowany
else
{
	$user = new Student($db, $_SESSION['user']);
	//sprawdzamy jaka strone chce odwiedzic user
	switch($fd[0])
	{
		case 'admin':
			$site = $fd[0];
			$template = $fd[0];
			break;
		default:
			if($_conf['results'])
			{	
				$site = 'results';
				$template = 'results';
			}
			elseif($fd[0] == 'groups' && $_conf['registering'])
			{
				$site = 'groups';
				$template = 'groups';	
			}
			elseif($fd[0] == 'reset' && $_conf['registering'])
			{
				$site = 'reset';
				$template = 'reset';	
			}
			else
			{			
				$site = 'registering';
				$template = 'registering';
			}
			break;
	}
	$modTpl = 'full';
	include('_modules/'.$site.'.php');
	$smarty->assign('template', $template.'.tpl');
	$smarty->assign('admin', $user->isAdmin());
	$smarty->assign('userName', $user->getName());
}

$smarty->assign('user', $_SESSION['user']);

$smarty->assign('modTpl', $modTpl.'.tpl');
if(isset($extendedTemplate))
{
    $smarty->display($extendedTemplate.'.tpl');
}
else
{
    $smarty->display('index.tpl');
}

//debug info
if(0 && $_SERVER["SERVER_NAME"] == 'localhost')
{
	echo "<pre id=\"debug\">
	<strong>debug:</strong>\n";
	$debug->show();
	echo"
	</pre>";
}
?>